Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding PRES table for GF180MCU DRC #64

Merged
merged 2 commits into from
Apr 6, 2023
Merged

Conversation

FaragElsayed2
Copy link
Collaborator

Adding PRES table for GF180MCU DRC

Fixes #43

@mithro mithro assigned proppy and unassigned proppy Apr 3, 2023
@mithro mithro requested a review from proppy April 3, 2023 17:32
@atorkmabrains
Copy link
Collaborator

@proppy ?

@proppy
Copy link
Member

proppy commented Apr 4, 2023

@atorkmabrains can you review it first?

@atorkmabrains
Copy link
Collaborator

@proppy responded #65

Copy link
Collaborator

@atorkmabrains atorkmabrains left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

# limitations under the License.
################################################################################################

if FEOL
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#58 but not blocking


if FEOL
#================================================
#----------------P+ POLY RESISTOR----------------
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#57 but not blocking

logger.info('Executing rule PRES.1')
pres1_l1 = pres_poly.width(0.8.um, euclidian)
pres1_l1.output('PRES.1', 'PRES.1 : Minimum width of Poly2 resistor. : 0.8µm')
pres1_l1.forget
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#53 but not blocking

## and both side (X and Y) are greater than 80um.
## then the minimum spacing to adjacent RES_MK layer. is 20µm
logger.info('Executing rule PRES.9b')
pres9b = res_mk.with_area(15_000.001.um, nil).edges.with_length(80.001.um, nil)
Copy link
Member

@proppy proppy Apr 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we have .001 here?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Answered that before.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we use 1.dbu instead?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

filed #66 to discuss this further


# Rule PRES.3: Minimum space from Poly2 resistor to COMP.
logger.info('Executing rule PRES.3')
pres3_l1 = pres_poly.separation(comp, 0.6.um, euclidian).polygons(0.001.um)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we have .001 here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we use 1.dbu instead?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

filed #66 to discuss this further


# Rule PRES.5: Minimum Plus implant overlap of Poly2 resistor. is 0.3µm
logger.info('Executing rule PRES.5')
pres5_l1 = pres_poly.enclosed(pplus, 0.3.um, euclidian).polygons(0.001.um)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we have .001 here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we use 1.dbu instead?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

filed #66 to discuss this further


# Rule PRES.7: Space from salicide block to contact on Poly2 resistor.
logger.info('Executing rule PRES.7')
pres7_l1 = contact.and(pres_poly).separation(sab, 0.22.um).polygons(0.001.um)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we have .001 here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we use 1.dbu instead?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

filed #66 to discuss this further

pres7_l2.forget

# Rule PRES.8 is not a DRC check
## Please refer to https://gf180mcu-pdk.readthedocs.io/en/latest/physical_verification/design_manual/drm_10_01.html#p-poly-resistor-pres
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#55 but not blocking

Copy link
Member

@proppy proppy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just some nits and questions but nothing blocking per se, I'll leave it up to you if you want to address those in this PR or file separate issues to track them.

@proppy proppy merged commit bcb9e9e into google:main Apr 6, 2023
@atorkmabrains atorkmabrains deleted the pres_google branch April 6, 2023 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Creating PRs for each DRC table separately
3 participants